
#include "bsp_gpio.h"

void bsp_gpio_init(void)
{
	/* clk 配置 */
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE); // 使能时钟

	/* gpio 配置 */
	GPIO_InitStructure.GPIO_Pin = LED_GPIO_PIN;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;

	GPIO_Init(LED_GPIO_TYPE, &GPIO_InitStructure);

	GPIO_WriteBit(LED_GPIO_TYPE, LED_GPIO_PIN, Bit_SET); // 默认高电平
}

void bsp_gpio_toggle(void)
{
	if (GPIO_ReadOutputDataBit(LED_GPIO_TYPE, LED_GPIO_PIN) == 1)
		GPIO_WriteBit(LED_GPIO_TYPE, LED_GPIO_PIN, Bit_RESET);
	else
		GPIO_WriteBit(LED_GPIO_TYPE, LED_GPIO_PIN, Bit_SET);
}

void bsp_gpio_test(void)
{
	bsp_gpio_toggle();
	delay_ms(500);
}
